\select@language {brazil}
\contentsline {chapter}{Agradecimentos}{iv}
\contentsline {chapter}{Lista de Figuras}{v}
\contentsline {chapter}{Lista de Tabelas}{vi}
\contentsline {chapter}{Lista de Tabelas de C\'odigo}{ix}
\contentsline {chapter}{Resumo}{xiii}
\contentsline {chapter}{Abstract}{xiv}
\contentsline {chapter}{\numberline {1}Introdu\c c\~ao}{1}
\contentsline {section}{\numberline {1.1}Descri\c c\~ao do problema}{1}
\contentsline {section}{\numberline {1.2}Motiva\c c\~ao}{1}
\contentsline {section}{\numberline {1.3}Proposta de trabalho}{1}
\contentsline {chapter}{\numberline {2}Fundamentos}{2}
\contentsline {section}{\numberline {2.1}Web Services}{2}
\contentsline {section}{\numberline {2.2}Padr\~ao}{2}
\contentsline {subsection}{\numberline {2.2.1}SOAP (Simple Object Access Protocol)}{2}
\contentsline {subsection}{\numberline {2.2.2}WSDL (Web Service Description Language)}{3}
\contentsline {subsection}{\numberline {2.2.3}UDDI (Universal Discovery, Description and Integration)}{3}
\contentsline {section}{\numberline {2.3}Integra\c c\~ao de Sistemas}{3}
\contentsline {section}{\numberline {2.4}Vantagens}{3}
\contentsline {chapter}{\numberline {3}Tecnologias Utilizadas}{5}
\contentsline {section}{\numberline {3.1}Introdu\c c\~ao}{5}
\contentsline {section}{\numberline {3.2}XML}{5}
\contentsline {subsection}{\numberline {3.2.1}Estrutura}{6}
\contentsline {subsection}{\numberline {3.2.2}Sintaxe}{7}
\contentsline {subsection}{\numberline {3.2.3}Simple Types}{7}
\contentsline {subsection}{\numberline {3.2.4}Complex Types}{10}
\contentsline {subsubsection}{Indicadores de Ordem}{14}
\contentsline {subsubsection}{Indicadores de Ocorr\^encia}{15}
\contentsline {subsubsection}{Indicadores de Grupo}{16}
\contentsline {section}{\numberline {3.3}JavaScript}{17}
\contentsline {section}{\numberline {3.4}AJAX - Asynchronous JavaScript and XML}{17}
\contentsline {subsection}{\numberline {3.4.1}Criando um Objeto XMLHttpRequest}{18}
\contentsline {section}{\numberline {3.5}Java}{21}
\contentsline {chapter}{\numberline {4}Padr\~oes utilizados}{22}
\contentsline {section}{\numberline {4.1}WSDL 1.1}{22}
\contentsline {subsection}{\numberline {4.1.1}Exemplo do WSDL 1.1}{24}
\contentsline {subsubsection}{Types}{24}
\contentsline {subsubsection}{Messages}{25}
\contentsline {subsubsection}{Interfaces (portTypes)}{25}
\contentsline {subsubsection}{Bindings}{26}
\contentsline {subsubsection}{Services}{27}
\contentsline {section}{\numberline {4.2}WSDL 2.0}{28}
\contentsline {subsection}{\numberline {4.2.1}Descri\c c\~ao}{29}
\contentsline {subsection}{\numberline {4.2.2}Componente Interface}{31}
\contentsline {subsection}{\numberline {4.2.3}Componente Binding}{32}
\contentsline {subsection}{\numberline {4.2.4}Componente Service}{34}
\contentsline {section}{\numberline {4.3}Diferen\c cas entre WSDL 1.1 e WSDL 2.0}{35}
\contentsline {subsection}{\numberline {4.3.1}Compara\c c\~ao entre WSDL 1.1 e WSDL 2.0}{35}
\contentsline {section}{\numberline {4.4}SOAP}{36}
\contentsline {subsection}{\numberline {4.4.1}Framework de Mensagens}{37}
\contentsline {subsection}{\numberline {4.4.2}Extensibilidade}{41}
\contentsline {subsection}{\numberline {4.4.3}Modelo de Processo}{42}
\contentsline {subsection}{\numberline {4.4.4}Protocolo Bindings}{43}
\contentsline {subsubsection}{HTTP Binding}{43}
\contentsline {subsubsection}{RPC and Encoding}{44}
\contentsline {chapter}{\numberline {5}Tradu\c c\~ao para o JavaScript}{46}
\contentsline {section}{\numberline {5.1}Tradu\c c\~ao dos componentes de um WSDL}{46}
\contentsline {subsection}{\numberline {5.1.1}Cria\c c\~ao da estrutura de dados baseada no XML Schema}{46}
\contentsline {subsection}{\numberline {5.1.2}Tradu\c c\~ao das opera\c c\~oes descritas no WSDL}{52}
\contentsline {section}{\numberline {5.2}Objetos auxiliares para comunica\c c\~ao}{56}
\contentsline {subsection}{\numberline {5.2.1}SOAPAction}{56}
\contentsline {subsection}{\numberline {5.2.2}Utils}{59}
\contentsline {subsubsection}{objectsToXML}{59}
\contentsline {subsubsection}{nodeToObject}{60}
\contentsline {chapter}{\numberline {6}Implementa\c c\~ao do Gerador Autom\'atico}{64}
\contentsline {section}{\numberline {6.1}Estrutura do Tradutor}{64}
\contentsline {section}{\numberline {6.2}Apache Woden}{65}
\contentsline {subsubsection}{API Element}{65}
\contentsline {subsubsection}{API Component}{65}
\contentsline {section}{\numberline {6.3}Estrutura l\'ogica do gerador}{66}
\contentsline {section}{\numberline {6.4}Gera\c c\~ao de C\'odigo Auxiliar}{67}
\contentsline {section}{\numberline {6.5}Mapeamento para o JavaScript}{67}
\contentsline {subsubsection}{Operations}{67}
\contentsline {subsubsection}{Elementos e Tipos}{68}
\contentsline {subsubsection}{Schema}{69}
\contentsline {subsubsection}{Exemplo de utiliza\c c\~ao do Stub gerado}{69}
\contentsline {chapter}{\numberline {7}Conclus\~ao}{72}
\contentsline {section}{\numberline {7.1}Problemas Enfrentados}{72}
\contentsline {chapter}{\numberline {8}Sugest\~oes para trabalhos futuros}{74}
\contentsline {chapter}{Refer\^encias Bibliogr\'aficas}{75}
\contentsline {chapter}{\numberline {9}Anexos}{76}
\contentsline {section}{\numberline {9.1}WSDL Consulta CEP}{76}
\contentsline {section}{\numberline {9.2}Stub Gerado em JavaScript}{80}
